Kernel-based Virtual Machine

KVM

Screenshot of QEMU/KVM running NetBSD, OpenSolaris and Kubuntu on an Arch Linux host.
Developer(s) Red Hat, Inc.
Stable release 15 / June 15, 2011; 7 months ago (2011-06-15)
Written in C
Operating system Linux kernel
Type Platform virtualization
License GNU General Public License or GNU Lesser General Public License
Website www.linux-kvm.org
(unofficial)

Kernel-based Virtual Machine (KVM) is a virtualization infrastructure for the Linux kernel. KVM supports native virtualization on processors with hardware virtualization extensions.[1]

KVM originally supported x86 and x86-64 processors and has been ported to S/390,[2] PowerPC,[3] and IA-64. An ARM port is in progress.[4]

A wide variety of guest operating systems work with KVM, including many flavours of Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, and AROS Research Operating System.[5] A modified version of QEMU can use KVM to run Mac OS X.[6]

Limited paravirtualization support is available for Linux and Windows guests using the VirtIO framework. This supports a paravirtual Ethernet card, a paravirtual disk I/O controller, a balloon device for adjusting guest memory usage, and a VGA graphics interface using SPICE or VMware drivers.

KVM uses SeaBIOS.

Linux 2.6.20 (released February 2007) was the first to include KVM.[7]

KVM has also been ported to FreeBSD and Illumos as a loadable kernel module.[8][9]

Contents

Design

By itself, KVM does not perform any emulation. Instead, a user space program uses the /dev/kvm interface to set up the guest VM's address space, feeds it simulated I/O and maps its video display back onto the host's. QEMU versions 0.10.1 and later make use of this.

Licensing

KVM's parts are licensed under various GNU licenses:[10]

History

Qumranet, a technology startup company, began the development of KVM.[11] Red Hat bought Qumranet in 2008.[12] KVM is maintained by Avi Kivity and Marcelo Tosatti.

Graphical management tools

Emulated hardware

Class Device
Video card Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions[13]
PCI i440FX host PCI bridge and PIIX3 PCI to ISA bridge[13]
Input device PS/2 Mouse and Keyboard[13]
Sound card Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1, CS4231A compatible[13]
Ethernet Network card AMD Am79C970A (Am7990), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000, and Realtek RTL8139
Watchdog timer Intel 6300ESB or IB700
RAM 50 MB - 32 TB
CPU 1-16 CPUs

Implementations

See also

Free software portal
Linux portal

References

External links